#pragma once
#include "InterfaceDataType.h"

namespace gaeaway_load
{
    namespace dataquery
    {
        size_t getEquipmentById(const EquipmentsOfInput& source, int id);
        EquipmentsOfInput::const_iterator getEquipmentIterById(const EquipmentsOfInput& source, int id);
        
        EquipmentsOfInput getUnloadedEquipments(const EquipmentsOfInput& allEquipments,std::vector<int> loadedEquipmentIdList);
        
        int getAirplaneLoadedIndexByEquipmentID(const LoadingAirplanes& loadingAirplanes,int equipmentID);
        size_t getIndexByEquipment(const LoadingAirplanes& loadingAirplanes, int equipmentID);
		size_t getCountOfLoadedEquipments(const LoadingAirplanes& loadedAirplanes);
        bool isExistOnCurrentAirplane(const LoadedAirplane& loadedAirplane, int equipmentID);

        double getCurrentLoadingWeight(const LoadedAirplane& loadedAirplane, const EquipmentsOfInput& equipmentSource);

        double getMinLengthOfEquipment(const EquipmentsOfInput& equipments);

        Ranges getFreeAreas(const LoadedAirplane& airplane,double ignoreSpacing);
        EquipmentsOfInput getEquipmentListByAirplaneTypeID(const EquipmentsOfInput& equipmentSource,int airplaneTypeID);
        EquipmentsOfInput getEquipmentsByMinTypeAirID(const EquipmentsOfInput& equipmentSource, int airplaneTypeID);
        size_t getIndexByAirTypeID(const AirplaneList& airList,int typeID);
    }
}


